In computer processor design, clock gating is used to conserve power by preventing a circuit from receiving the clock signal if that circuit is not required for a particular operation. Ideally, every circuit that is not required for a particular operation should be clock gated for that operation in order to receive maximum benefit from clock gating. However, determining which circuits may be clock gated for various operations is a significant design challenge.